package com.yootoo.extpmml;

import ml.dmlc.xgboost4j.java.Booster;
import ml.dmlc.xgboost4j.java.DMatrix;
import ml.dmlc.xgboost4j.java.XGBoost;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

public class FinRiskModelV8C7 {
    public static void main(String[] args) throws Exception {
        // header
        String s1 = "user_id,task_id,no_dial_day_item_1m,no_dial_day_item_3m,no_dial_day_item_6m,no_dial_day_avg_item_3m,no_dial_day_avg_item_6m,power_off_day_item_1m,power_off_day_item_3m,power_off_day_item_6m,power_off_day_avg_item_3m,power_off_day_avg_item_6m,no_call_day_item_1m,no_call_day_item_3m,no_call_day_item_6m,no_call_day_avg_item_3m,no_call_day_avg_item_6m,call_cnt_item_1m,call_cnt_item_3m,call_cnt_item_6m,call_cnt_avg_item_3m,call_cnt_avg_item_6m,call_day_item_1m,call_day_item_3m,call_day_item_6m,call_day_avg_item_3m,call_day_avg_item_6m,peer_loc_cnt_item_1m,peer_loc_cnt_item_3m,peer_loc_cnt_item_6m,peer_loc_cnt_avg_item_3m,peer_loc_cnt_avg_item_6m,continue_power_off_cnt_item_1m,continue_power_off_cnt_item_3m,continue_power_off_cnt_item_6m,call_time_item_1m,call_time_item_3m,call_time_item_6m,call_time_avg_item_3m,call_time_avg_item_6m,net_used_item_1m,net_used_item_3m,net_used_item_6m,net_used_avg_item_3m,net_used_avg_item_6m,max_power_on_day_item_1m,max_power_on_day_item_3m,max_power_on_day_item_6m,peer_num_cnt_item_1m,peer_num_cnt_item_3m,peer_num_cnt_item_6m,peer_num_cnt_avg_item_3m,peer_num_cnt_avg_item_6m,dial_time_item_1m,dial_time_item_3m,dial_time_item_6m,dial_time_avg_item_3m,dial_time_avg_item_6m,dial_cnt_item_1m,dial_cnt_item_3m,dial_cnt_item_6m,dial_cnt_avg_item_3m,dial_cnt_avg_item_6m,sms_cnt_item_1m,sms_cnt_item_3m,sms_cnt_item_6m,sms_cnt_avg_item_3m,sms_cnt_avg_item_6m,arrearage_risk_6m,binding_risk,is_name_and_idcard_in_finance_black,is_name_and_idcard_in_court_black,mobile_silence_6m,mobile_silence_3m,arrearage_risk_3m,is_name_and_mobile_in_finance_black,contact_credit_card_score,contact_bank_score,phone_power_off_score,contact_night_score,contact_loan_score,contact_each_other_score,contact_collection_score,contact_110_score,contact_120_score,contact_lawyer_score,contact_court_score,contact_macao_score,regular_circle_score,call_duration_detail_3m_afternoon_total_cnt,call_duration_detail_3m_afternoon_uniq_num_cnt,call_duration_detail_3m_afternoon_total_time,call_duration_detail_3m_afternoon_dial_cnt,call_duration_detail_3m_afternoon_dialed_cnt,call_duration_detail_3m_afternoon_dial_time,call_duration_detail_3m_afternoon_dialed_time,call_duration_detail_3m_daybreak_total_cnt,call_duration_detail_3m_daybreak_uniq_num_cnt,call_duration_detail_3m_daybreak_total_time,call_duration_detail_3m_daybreak_dial_cnt,call_duration_detail_3m_daybreak_dialed_cnt,call_duration_detail_3m_daybreak_dial_time,call_duration_detail_3m_daybreak_dialed_time,call_duration_detail_3m_dusk_total_cnt,call_duration_detail_3m_dusk_uniq_num_cnt,call_duration_detail_3m_dusk_total_time,call_duration_detail_3m_dusk_dial_cnt,call_duration_detail_3m_dusk_dialed_cnt,call_duration_detail_3m_dusk_dial_time,call_duration_detail_3m_dusk_dialed_time,call_duration_detail_3m_evening_total_cnt,call_duration_detail_3m_evening_uniq_num_cnt,call_duration_detail_3m_evening_total_time,call_duration_detail_3m_evening_dial_cnt,call_duration_detail_3m_evening_dialed_cnt,call_duration_detail_3m_evening_dial_time,call_duration_detail_3m_evening_dialed_time,call_duration_detail_3m_forenoon_total_cnt,call_duration_detail_3m_forenoon_uniq_num_cnt,call_duration_detail_3m_forenoon_total_time,call_duration_detail_3m_forenoon_dial_cnt,call_duration_detail_3m_forenoon_dialed_cnt,call_duration_detail_3m_forenoon_dial_time,call_duration_detail_3m_forenoon_dialed_time,call_duration_detail_3m_midnight_total_cnt,call_duration_detail_3m_midnight_uniq_num_cnt,call_duration_detail_3m_midnight_total_time,call_duration_detail_3m_midnight_dial_cnt,call_duration_detail_3m_midnight_dialed_cnt,call_duration_detail_3m_midnight_dial_time,call_duration_detail_3m_midnight_dialed_time,call_duration_detail_3m_morning_total_cnt,call_duration_detail_3m_morning_uniq_num_cnt,call_duration_detail_3m_morning_total_time,call_duration_detail_3m_morning_dial_cnt,call_duration_detail_3m_morning_dialed_cnt,call_duration_detail_3m_morning_dial_time,call_duration_detail_3m_morning_dialed_time,call_duration_detail_3m_noon_total_cnt,call_duration_detail_3m_noon_uniq_num_cnt,call_duration_detail_3m_noon_total_time,call_duration_detail_3m_noon_dial_cnt,call_duration_detail_3m_noon_dialed_cnt,call_duration_detail_3m_noon_dial_time,call_duration_detail_3m_noon_dialed_time,call_duration_detail_6m_afternoon_total_cnt,call_duration_detail_6m_afternoon_uniq_num_cnt,call_duration_detail_6m_afternoon_total_time,call_duration_detail_6m_afternoon_dial_cnt,call_duration_detail_6m_afternoon_dialed_cnt,call_duration_detail_6m_afternoon_dial_time,call_duration_detail_6m_afternoon_dialed_time,call_duration_detail_6m_daybreak_total_cnt,call_duration_detail_6m_daybreak_uniq_num_cnt,call_duration_detail_6m_daybreak_total_time,call_duration_detail_6m_daybreak_dial_cnt,call_duration_detail_6m_daybreak_dialed_cnt,call_duration_detail_6m_daybreak_dial_time,call_duration_detail_6m_daybreak_dialed_time,call_duration_detail_6m_dusk_total_cnt,call_duration_detail_6m_dusk_uniq_num_cnt,call_duration_detail_6m_dusk_total_time,call_duration_detail_6m_dusk_dial_cnt,call_duration_detail_6m_dusk_dialed_cnt,call_duration_detail_6m_dusk_dial_time,call_duration_detail_6m_dusk_dialed_time,call_duration_detail_6m_evening_total_cnt,call_duration_detail_6m_evening_uniq_num_cnt,call_duration_detail_6m_evening_total_time,call_duration_detail_6m_evening_dial_cnt,call_duration_detail_6m_evening_dialed_cnt,call_duration_detail_6m_evening_dial_time,call_duration_detail_6m_evening_dialed_time,call_duration_detail_6m_forenoon_total_cnt,call_duration_detail_6m_forenoon_uniq_num_cnt,call_duration_detail_6m_forenoon_total_time,call_duration_detail_6m_forenoon_dial_cnt,call_duration_detail_6m_forenoon_dialed_cnt,call_duration_detail_6m_forenoon_dial_time,call_duration_detail_6m_forenoon_dialed_time,call_duration_detail_6m_midnight_total_cnt,call_duration_detail_6m_midnight_uniq_num_cnt,call_duration_detail_6m_midnight_total_time,call_duration_detail_6m_midnight_dial_cnt,call_duration_detail_6m_midnight_dialed_cnt,call_duration_detail_6m_midnight_dial_time,call_duration_detail_6m_midnight_dialed_time,call_duration_detail_6m_morning_total_cnt,call_duration_detail_6m_morning_uniq_num_cnt,call_duration_detail_6m_morning_total_time,call_duration_detail_6m_morning_dial_cnt,call_duration_detail_6m_morning_dialed_cnt,call_duration_detail_6m_morning_dial_time,call_duration_detail_6m_morning_dialed_time,call_duration_detail_6m_noon_total_cnt,call_duration_detail_6m_noon_uniq_num_cnt,call_duration_detail_6m_noon_total_time,call_duration_detail_6m_noon_dial_cnt,call_duration_detail_6m_noon_dialed_cnt,call_duration_detail_6m_noon_dial_time,call_duration_detail_6m_noon_dialed_time,unpaid_month_cnt_item_1m,unpaid_month_cnt_item_3m,unpaid_month_cnt_item_6m,continue_recharge_month_cnt_item_1m,continue_recharge_month_cnt_item_3m,continue_recharge_month_cnt_item_6m,live_month_cnt_item_1m,live_month_cnt_item_3m,live_month_cnt_item_6m,110_call_cnt_1m,110_call_cnt_3m,110_call_cnt_6m,110_avg_call_cnt_3m,110_avg_call_cnt_6m,110_call_time_1m,110_call_time_3m,110_call_time_6m,110_avg_call_time_3m,110_avg_call_time_6m,110_call_dial_cnt_1m,110_call_dial_cnt_3m,110_call_dial_cnt_6m,110_avg_call_dial_cnt_3m,110_avg_call_dial_cnt_6m,110_call_dial_time_1m,110_call_dial_time_3m,110_call_dial_time_6m,110_avg_call_dial_time_3m,110_avg_call_dial_time_6m,110_call_dialed_cnt_3m,110_call_dialed_cnt_6m,110_avg_call_dialed_cnt_3m,110_call_dialed_time_1m,110_call_dialed_time_3m,110_call_dialed_time_6m,110_avg_call_dialed_time_3m,110_avg_call_dialed_time_6m,120_call_cnt_1m,120_call_cnt_3m,120_call_cnt_6m,120_avg_call_cnt_3m,120_avg_call_cnt_6m,120_call_time_1m,120_call_time_3m,120_call_time_6m,120_avg_call_time_3m,120_avg_call_time_6m,120_call_dial_cnt_1m,120_call_dial_cnt_3m,120_call_dial_cnt_6m,120_avg_call_dial_cnt_3m,120_avg_call_dial_cnt_6m,120_call_dial_time_1m,120_call_dial_time_3m,120_call_dial_time_6m,120_avg_call_dial_time_3m,120_avg_call_dial_time_6m,120_call_dialed_cnt_1m,120_call_dialed_cnt_3m,120_call_dialed_cnt_6m,120_avg_call_dialed_cnt_3m,120_avg_call_dialed_cnt_6m,120_call_dialed_time_3m,120_call_dialed_time_6m,120_avg_call_dialed_time_3m,120_avg_call_dialed_time_6m,agency_call_cnt_1m,agency_call_cnt_3m,agency_call_cnt_6m,agency_avg_call_cnt_3m,agency_avg_call_cnt_6m,agency_call_time_1m,agency_call_time_3m,agency_call_time_6m,agency_avg_call_time_3m,agency_avg_call_time_6m,agency_call_dial_cnt_1m,agency_call_dial_cnt_3m,agency_call_dial_cnt_6m,agency_avg_call_dial_cnt_3m,agency_avg_call_dial_cnt_6m,agency_call_dial_time_1m,agency_call_dial_time_3m,agency_call_dial_time_6m,agency_avg_call_dial_time_3m,agency_avg_call_dial_time_6m,agency_call_dialed_cnt_1m,agency_call_dialed_cnt_3m,agency_call_dialed_cnt_6m,agency_avg_call_dialed_cnt_3m,agency_avg_call_dialed_cnt_6m,agency_call_dialed_time_1m,agency_call_dialed_time_3m,agency_call_dialed_time_6m,agency_avg_call_dialed_time_3m,agency_avg_call_dialed_time_6m,collection_call_cnt_1m,collection_call_cnt_3m,collection_call_cnt_6m,collection_avg_call_cnt_3m,collection_avg_call_cnt_6m,collection_call_time_1m,collection_call_time_3m,collection_call_time_6m,collection_avg_call_time_3m,collection_avg_call_time_6m,collection_call_dial_cnt_1m,collection_call_dial_cnt_3m,collection_call_dial_cnt_6m,collection_avg_call_dial_cnt_3m,collection_avg_call_dial_cnt_6m,collection_call_dial_time_1m,collection_call_dial_time_3m,collection_call_dial_time_6m,collection_avg_call_dial_time_3m,collection_avg_call_dial_time_6m,collection_call_dialed_cnt_1m,collection_call_dialed_cnt_3m,collection_call_dialed_cnt_6m,collection_avg_call_dialed_cnt_3m,collection_avg_call_dialed_cnt_6m,collection_call_dialed_time_1m,collection_call_dialed_time_3m,collection_call_dialed_time_6m,collection_avg_call_dialed_time_3m,collection_avg_call_dialed_time_6m,court_call_cnt_1m,court_call_cnt_3m,court_call_cnt_6m,court_avg_call_cnt_3m,court_avg_call_cnt_6m,court_call_time_1m,court_call_time_3m,court_call_time_6m,court_avg_call_time_3m,court_avg_call_time_6m,court_call_dial_cnt_1m,court_call_dial_cnt_3m,court_call_dial_cnt_6m,court_avg_call_dial_cnt_3m,court_avg_call_dial_cnt_6m,court_call_dial_time_1m,court_call_dial_time_3m,court_call_dial_time_6m,court_avg_call_dial_time_3m,court_avg_call_dial_time_6m,court_call_dialed_cnt_1m,court_call_dialed_cnt_3m,court_call_dialed_cnt_6m,court_avg_call_dialed_cnt_6m,court_call_dialed_time_1m,court_call_dialed_time_3m,court_call_dialed_time_6m,court_avg_call_dialed_time_3m,court_avg_call_dialed_time_6m,credit_card_call_cnt_1m,credit_card_call_cnt_3m,credit_card_call_cnt_6m,credit_card_avg_call_cnt_3m,credit_card_avg_call_cnt_6m,credit_card_call_time_1m,credit_card_call_time_3m,credit_card_call_time_6m,credit_card_avg_call_time_3m,credit_card_avg_call_time_6m,credit_card_call_dial_cnt_1m,credit_card_call_dial_cnt_3m,credit_card_call_dial_cnt_6m,credit_card_avg_call_dial_cnt_3m,credit_card_avg_call_dial_cnt_6m,credit_card_call_dial_time_1m,credit_card_call_dial_time_3m,credit_card_call_dial_time_6m,credit_card_avg_call_dial_time_3m,credit_card_avg_call_dial_time_6m,credit_card_call_dialed_cnt_1m,credit_card_call_dialed_cnt_3m,credit_card_call_dialed_cnt_6m,credit_card_avg_call_dialed_cnt_3m,credit_card_avg_call_dialed_cnt_6m,credit_card_call_dialed_time_1m,credit_card_call_dialed_time_3m,credit_card_call_dialed_time_6m,credit_card_avg_call_dialed_time_3m,credit_card_avg_call_dialed_time_6m,fraud_call_cnt_1m,fraud_call_cnt_3m,fraud_call_cnt_6m,fraud_avg_call_cnt_3m,fraud_avg_call_cnt_6m,fraud_call_time_1m,fraud_call_time_3m,fraud_call_time_6m,fraud_avg_call_time_3m,fraud_avg_call_time_6m,fraud_call_dial_cnt_1m,fraud_call_dial_cnt_3m,fraud_call_dial_cnt_6m,fraud_avg_call_dial_cnt_3m,fraud_avg_call_dial_cnt_6m,fraud_call_dial_time_1m,fraud_call_dial_time_3m,fraud_call_dial_time_6m,fraud_avg_call_dial_time_3m,fraud_avg_call_dial_time_6m,fraud_call_dialed_cnt_1m,fraud_call_dialed_cnt_3m,fraud_call_dialed_cnt_6m,fraud_avg_call_dialed_cnt_3m,fraud_avg_call_dialed_cnt_6m,fraud_call_dialed_time_1m,fraud_call_dialed_time_3m,fraud_call_dialed_time_6m,fraud_avg_call_dialed_time_3m,fraud_avg_call_dialed_time_6m,lawyer_call_cnt_1m,lawyer_call_cnt_3m,lawyer_call_cnt_6m,lawyer_avg_call_cnt_3m,lawyer_avg_call_cnt_6m,lawyer_call_time_1m,lawyer_call_time_3m,lawyer_call_time_6m,lawyer_avg_call_time_3m,lawyer_avg_call_time_6m,lawyer_call_dial_time_3m,lawyer_call_dial_time_6m,lawyer_call_dialed_cnt_1m,lawyer_call_dialed_cnt_6m,lawyer_avg_call_dialed_cnt_3m,lawyer_avg_call_dialed_cnt_6m,lawyer_call_dialed_time_1m,lawyer_call_dialed_time_6m,lawyer_avg_call_dialed_time_3m,lawyer_avg_call_dialed_time_6m,loan_call_cnt_1m,loan_call_cnt_3m,loan_call_cnt_6m,loan_avg_call_cnt_3m,loan_avg_call_cnt_6m,loan_call_time_1m,loan_call_time_3m,loan_call_time_6m,loan_avg_call_time_3m,loan_avg_call_time_6m,loan_call_dial_cnt_1m,loan_call_dial_cnt_3m,loan_call_dial_cnt_6m,loan_avg_call_dial_cnt_3m,loan_avg_call_dial_cnt_6m,loan_call_dial_time_1m,loan_call_dial_time_3m,loan_call_dial_time_6m,loan_avg_call_dial_time_3m,loan_avg_call_dial_time_6m,loan_call_dialed_cnt_1m,loan_call_dialed_cnt_3m,loan_call_dialed_cnt_6m,loan_avg_call_dialed_cnt_3m,loan_avg_call_dialed_cnt_6m,loan_call_dialed_time_1m,loan_call_dialed_time_3m,loan_call_dialed_time_6m,loan_avg_call_dialed_time_3m,loan_avg_call_dialed_time_6m,macao_call_cnt_1m,macao_call_cnt_3m,macao_call_cnt_6m,macao_avg_call_cnt_3m,macao_avg_call_cnt_6m,macao_call_time_1m,macao_call_time_3m,macao_call_time_6m,macao_avg_call_time_3m,macao_avg_call_time_6m,macao_call_dial_cnt_1m,macao_call_dial_cnt_3m,macao_call_dial_cnt_6m,macao_avg_call_dial_cnt_3m,macao_avg_call_dial_cnt_6m,macao_call_dial_time_1m,macao_call_dial_time_3m,macao_call_dial_time_6m,macao_avg_call_dial_time_3m,macao_avg_call_dial_time_6m,macao_call_dialed_cnt_1m,macao_call_dialed_cnt_3m,macao_call_dialed_cnt_6m,macao_avg_call_dialed_cnt_3m,macao_avg_call_dialed_cnt_6m,macao_call_dialed_time_1m,macao_call_dialed_time_3m,macao_call_dialed_time_6m,macao_avg_call_dialed_time_3m,macao_avg_call_dialed_time_6m,nuisance_call_cnt_1m,nuisance_call_cnt_3m,nuisance_call_cnt_6m,nuisance_avg_call_cnt_3m,nuisance_avg_call_cnt_6m,nuisance_call_time_1m,nuisance_call_time_3m,nuisance_call_time_6m,nuisance_avg_call_time_3m,nuisance_avg_call_time_6m,nuisance_call_dial_cnt_1m,nuisance_call_dial_cnt_3m,nuisance_call_dial_cnt_6m,nuisance_avg_call_dial_cnt_3m,nuisance_avg_call_dial_cnt_6m,nuisance_call_dial_time_1m,nuisance_call_dial_time_3m,nuisance_call_dial_time_6m,nuisance_avg_call_dial_time_3m,nuisance_avg_call_dial_time_6m,nuisance_call_dialed_cnt_1m,nuisance_call_dialed_cnt_3m,nuisance_call_dialed_cnt_6m,nuisance_avg_call_dialed_cnt_3m,nuisance_avg_call_dialed_cnt_6m,nuisance_call_dialed_time_1m,nuisance_call_dialed_time_3m,nuisance_call_dialed_time_6m,nuisance_avg_call_dialed_time_3m,nuisance_avg_call_dialed_time_6m,bank_call_cnt_1m,bank_call_cnt_3m,bank_call_cnt_6m,bank_avg_call_cnt_3m,bank_avg_call_cnt_6m,bank_call_time_1m,bank_call_time_3m,bank_call_time_6m,bank_avg_call_time_3m,bank_avg_call_time_6m,bank_call_dial_cnt_1m,bank_call_dial_cnt_3m,bank_call_dial_cnt_6m,bank_avg_call_dial_cnt_3m,bank_avg_call_dial_cnt_6m,bank_call_dial_time_1m,bank_call_dial_time_3m,bank_call_dial_time_6m,bank_avg_call_dial_time_3m,bank_avg_call_dial_time_6m,bank_call_dialed_cnt_1m,bank_call_dialed_cnt_3m,bank_call_dialed_cnt_6m,bank_avg_call_dialed_cnt_3m,bank_avg_call_dialed_cnt_6m,bank_call_dialed_time_1m,bank_call_dialed_time_3m,bank_call_dialed_time_6m,bank_avg_call_dialed_time_3m,bank_avg_call_dialed_time_6m,car_firm_call_cnt_1m,car_firm_call_cnt_3m,car_firm_call_cnt_6m,car_firm_avg_call_cnt_3m,car_firm_avg_call_cnt_6m,car_firm_call_time_1m,car_firm_call_time_3m,car_firm_call_time_6m,car_firm_avg_call_time_3m,car_firm_avg_call_time_6m,car_firm_call_dial_cnt_1m,car_firm_call_dial_cnt_3m,car_firm_call_dial_cnt_6m,car_firm_avg_call_dial_cnt_6m,car_firm_call_dial_time_1m,car_firm_call_dial_time_3m,car_firm_call_dial_time_6m,car_firm_avg_call_dial_time_3m,car_firm_avg_call_dial_time_6m,car_firm_call_dialed_cnt_1m,car_firm_call_dialed_cnt_3m,car_firm_call_dialed_cnt_6m,car_firm_avg_call_dialed_cnt_6m,car_firm_call_dialed_time_1m,car_firm_call_dialed_time_3m,car_firm_call_dialed_time_6m,car_firm_avg_call_dialed_time_3m,car_firm_avg_call_dialed_time_6m,carrier_call_cnt_1m,carrier_call_cnt_3m,carrier_call_cnt_6m,carrier_avg_call_cnt_3m,carrier_avg_call_cnt_6m,carrier_call_time_1m,carrier_call_time_3m,carrier_call_time_6m,carrier_avg_call_time_3m,carrier_avg_call_time_6m,carrier_call_dial_cnt_1m,carrier_call_dial_cnt_3m,carrier_call_dial_cnt_6m,carrier_avg_call_dial_cnt_3m,carrier_avg_call_dial_cnt_6m,carrier_call_dial_time_1m,carrier_call_dial_time_3m,carrier_call_dial_time_6m,carrier_avg_call_dial_time_3m,carrier_avg_call_dial_time_6m,carrier_call_dialed_cnt_1m,carrier_call_dialed_cnt_3m,carrier_call_dialed_cnt_6m,carrier_avg_call_dialed_cnt_3m,carrier_avg_call_dialed_cnt_6m,carrier_call_dialed_time_1m,carrier_call_dialed_time_3m,carrier_call_dialed_time_6m,carrier_avg_call_dialed_time_3m,carrier_avg_call_dialed_time_6m,express_call_cnt_1m,express_call_cnt_3m,express_call_cnt_6m,express_avg_call_cnt_3m,express_avg_call_cnt_6m,express_call_time_1m,express_call_time_3m,express_call_time_6m,express_avg_call_time_3m,express_avg_call_time_6m,express_call_dial_cnt_1m,express_call_dial_cnt_3m,express_call_dial_cnt_6m,express_avg_call_dial_cnt_3m,express_avg_call_dial_cnt_6m,express_call_dial_time_1m,express_call_dial_time_3m,express_call_dial_time_6m,express_avg_call_dial_time_3m,express_avg_call_dial_time_6m,express_call_dialed_cnt_1m,express_call_dialed_cnt_3m,express_call_dialed_cnt_6m,express_avg_call_dialed_cnt_3m,express_avg_call_dialed_cnt_6m,express_call_dialed_time_1m,express_call_dialed_time_3m,express_call_dialed_time_6m,express_avg_call_dialed_time_3m,express_avg_call_dialed_time_6m,ins_fin_call_cnt_1m,ins_fin_call_cnt_3m,ins_fin_call_cnt_6m,ins_fin_avg_call_cnt_3m,ins_fin_avg_call_cnt_6m,ins_fin_call_time_1m,ins_fin_call_time_3m,ins_fin_call_time_6m,ins_fin_avg_call_time_3m,ins_fin_avg_call_time_6m,ins_fin_call_dial_cnt_1m,ins_fin_call_dial_cnt_3m,ins_fin_call_dial_cnt_6m,ins_fin_avg_call_dial_cnt_3m,ins_fin_avg_call_dial_cnt_6m,ins_fin_call_dial_time_1m,ins_fin_call_dial_time_3m,ins_fin_call_dial_time_6m,ins_fin_avg_call_dial_time_3m,ins_fin_avg_call_dial_time_6m,ins_fin_call_dialed_cnt_1m,ins_fin_call_dialed_cnt_3m,ins_fin_call_dialed_cnt_6m,ins_fin_avg_call_dialed_cnt_3m,ins_fin_avg_call_dialed_cnt_6m,ins_fin_call_dialed_time_1m,ins_fin_call_dialed_time_3m,ins_fin_call_dialed_time_6m,ins_fin_avg_call_dialed_time_3m,ins_fin_avg_call_dialed_time_6m,railway_airway_call_cnt_1m,railway_airway_call_cnt_3m,railway_airway_call_cnt_6m,railway_airway_avg_call_cnt_3m,railway_airway_avg_call_cnt_6m,railway_airway_call_time_1m,railway_airway_call_time_3m,railway_airway_call_time_6m,railway_airway_avg_call_time_3m,railway_airway_avg_call_time_6m,railway_airway_call_dial_cnt_1m,railway_airway_call_dial_cnt_3m,railway_airway_call_dial_cnt_6m,railway_airway_avg_call_dial_cnt_3m,railway_airway_avg_call_dial_cnt_6m,railway_airway_call_dial_time_1m,railway_airway_call_dial_time_3m,railway_airway_call_dial_time_6m,railway_airway_avg_call_dial_time_3m,railway_airway_avg_call_dial_time_6m,railway_airway_call_dialed_cnt_1m,railway_airway_call_dialed_cnt_3m,railway_airway_call_dialed_cnt_6m,railway_airway_avg_call_dialed_cnt_3m,railway_airway_call_dialed_time_1m,railway_airway_call_dialed_time_3m,railway_airway_call_dialed_time_6m,railway_airway_avg_call_dialed_time_3m,railway_airway_avg_call_dialed_time_6m,special_service_call_cnt_1m,special_service_call_cnt_3m,special_service_call_cnt_6m,special_service_avg_call_cnt_3m,special_service_avg_call_cnt_6m,special_service_call_time_1m,special_service_call_time_3m,special_service_call_time_6m,special_service_avg_call_time_3m,special_service_avg_call_time_6m,special_service_call_dial_cnt_1m,special_service_call_dial_cnt_3m,special_service_call_dial_cnt_6m,special_service_avg_call_dial_cnt_3m,special_service_avg_call_dial_cnt_6m,special_service_call_dial_time_1m,special_service_call_dial_time_3m,special_service_call_dial_time_6m,special_service_avg_call_dial_time_3m,special_service_avg_call_dial_time_6m,special_service_call_dialed_cnt_1m,special_service_call_dialed_cnt_3m,special_service_call_dialed_cnt_6m,special_service_avg_call_dialed_cnt_3m,special_service_avg_call_dialed_cnt_6m,special_service_call_dialed_time_1m,special_service_call_dialed_time_3m,special_service_call_dialed_time_6m,special_service_avg_call_dialed_time_3m,special_service_avg_call_dialed_time_6m,night_cnt_item_1m,night_cnt_item_3m,night_cnt_item_6m,night_cnt_avg_item_3m,night_cnt_avg_item_6m,night_time_item_1m,night_time_item_3m,night_time_item_6m,night_time_avg_item_3m,night_time_avg_item_6m,cnt_10min_over_item_1m,cnt_10min_over_item_3m,cnt_10min_over_item_6m,cnt_10min_over_avg_item_3m,cnt_10min_over_avg_item_6m,cnt_5min_10min_item_1m,cnt_5min_10min_item_3m,cnt_5min_10min_item_6m,cnt_5min_10min_avg_item_3m,cnt_5min_10min_avg_item_6m,local_cnt_item_1m,local_cnt_item_3m,local_cnt_item_6m,local_cnt_avg_item_3m,local_cnt_avg_item_6m,daytime_time_item_1m,daytime_time_item_3m,daytime_time_item_6m,daytime_time_avg_item_3m,daytime_time_avg_item_6m,remote_time_item_1m,remote_time_item_3m,remote_time_item_6m,remote_time_avg_item_3m,remote_time_avg_item_6m,daytime_cnt_item_1m,daytime_cnt_item_3m,daytime_cnt_item_6m,daytime_cnt_avg_item_3m,daytime_cnt_avg_item_6m,max_single_time_item_1m,max_single_time_item_3m,max_single_time_item_6m,cnt_1min_5min_item_1m,cnt_1min_5min_item_3m,cnt_1min_5min_item_6m,cnt_1min_5min_avg_item_3m,cnt_1min_5min_avg_item_6m,remote_cnt_item_1m,remote_cnt_item_3m,remote_cnt_item_6m,remote_cnt_avg_item_3m,remote_cnt_avg_item_6m,min_single_time_item_1m,min_single_time_item_3m,min_single_time_item_6m,cnt_1min_within_item_1m,cnt_1min_within_item_3m,cnt_1min_within_item_6m,cnt_1min_within_avg_item_3m,cnt_1min_within_avg_item_6m,local_time_item_1m,local_time_item_3m,local_time_item_6m,local_time_avg_item_3m,local_time_avg_item_6m,net_fee_item_1m,net_fee_item_3m,net_fee_item_6m,net_fee_avg_item_3m,net_fee_avg_item_6m,vas_fee_item_1m,vas_fee_item_3m,vas_fee_item_6m,vas_fee_avg_item_3m,vas_fee_avg_item_6m,voice_fee_item_1m,voice_fee_item_3m,voice_fee_item_6m,voice_fee_avg_item_3m,voice_fee_avg_item_6m,extra_fee_item_1m,extra_fee_item_3m,extra_fee_item_6m,extra_fee_avg_item_3m,extra_fee_avg_item_6m,sms_fee_item_1m,sms_fee_item_3m,sms_fee_item_6m,sms_fee_avg_item_3m,sms_fee_avg_item_6m,total_fee_item_1m,total_fee_item_3m,total_fee_item_6m,total_fee_avg_item_3m,total_fee_avg_item_6m,max_single_recharge_item_1m,max_single_recharge_item_3m,max_single_recharge_item_6m,recharge_amount_item_1m,recharge_amount_item_3m,recharge_amount_item_6m,recharge_amount_avg_item_3m,recharge_amount_avg_item_6m,is_city_match_friend_city_center_3m,good_friend_num_6m,good_friend_num_3m,friend_num_3m,inter_peer_num_3m,inter_peer_num_6m,friend_num_6m,age,gender,phone_gray_score,contacts_class1_blacklist_cnt,contacts_class2_blacklist_cnt,contacts_class1_cnt,contacts_router_cnt,contacts_router_ratio,searched_org_cnt,idcard_with_other_names,idcard_with_other_phones,phone_with_other_names,phone_with_other_idcards,status,overdue_days,is_clear" + ",end_column";
        // values
        String s2 = "1499180\t2e2ba710-c4a9-11e8-b1cd-00163e13e22b\t1\t1\t3\t0.33\t0.5\t0\t0\t0\t0.0\t0.0\t0\t0\t0\t0.0\t0.0\t678\t2266\t3436\t755.33\t572.67\t30\t90\t180\t30.0\t30.0\t57\t86\t101\t28.67\t16.83\t0\t0\t0\t102610\t345232\t530736\t115077.0\t88456.0\t1048576\t3145728\t38662346\t1048576.0\t6443724.0\t30\t90\t180\t181\t368\t501\t122.67\t83.5\t67705\t241453\t342893\t80484.0\t57149.0\t360\t1237\t1798\t412.33\t299.67\t139\t289\t469\t96.33\t78.17\t0\t10\t否\t否\t3\t3\t0\t否\t1\t2\t1\t1\t1\t1\t1\t2\t1\t1\t1\t1\t1\t621\t236\t94023\t319\t302\t69097\t24926\t54\t28\t5205\t31\t23\t3477\t1728\t368\t127\t51786\t216\t152\t38977\t12809\t419\t127\t79030\t247\t172\t51529\t27501\t355\t151\t43825\t191\t164\t30607\t13218\t31\t12\t4251\t10\t21\t946\t3305\t80\t41\t11165\t47\t33\t8288\t2877\t338\t132\t55947\t176\t162\t38532\t17415\t970\t338\t151007\t486\t484\t101778\t49229\t101\t37\t8063\t44\t57\t4115\t3948\t527\t164\t75593\t292\t235\t51149\t24444\t655\t153\t125205\t378\t277\t75865\t49340\t492\t192\t68632\t252\t240\t42853\t25779\t119\t26\t9844\t38\t81\t2068\t7776\t118\t56\t19375\t74\t44\t15236\t4139\t454\t162\t73017\t234\t220\t49829\t23188\t0\t0\t0\t1\t3\t6\t1\t3\t6\t0\t1\t1\t0\t0\t0\t240\t240\t80\t40\t0\t1\t1\t0\t0\t0\t240\t240\t80\t40\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t1\t4\t0\t0\t29\t29\t456\t10\t76\t0\t0\t1\t0\t0\t0\t0\t35\t0\t6\t1\t1\t3\t0\t0\t29\t29\t421\t10\t70\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t15\t16\t5\t2\t339\t2623\t2649\t874\t442\t1\t13\t13\t4\t2\t339\t2582\t2582\t861\t430\t0\t2\t3\t0\t0\t0\t41\t67\t14\t11\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t4\t14\t28\t4\t4\t603\t3107\t5808\t1036\t968\t4\t11\t25\t3\t4\t603\t2822\t5523\t941\t921\t0\t3\t3\t1\t0\t0\t285\t285\t95\t48\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t2\t28\t54\t9\t9\t232\t1505\t3124\t502\t521\t0\t0\t2\t0\t0\t0\t0\t39\t0\t7\t2\t28\t52\t9\t8\t232\t1505\t3085\t502\t514\t3\t21\t34\t7\t5\t416\t3525\t5102\t1175\t850\t3\t16\t27\t5\t4\t416\t2827\t4333\t942\t722\t0\t5\t7\t1\t1\t0\t698\t769\t233\t128\t13\t22\t22\t7\t3\t2375\t3698\t3698\t1233\t616\t8\t17\t17\t2\t1553\t2876\t2876\t959\t479\t5\t5\t5\t0\t822\t822\t822\t274\t137\t0\t0\t1\t0\t0\t0\t0\t191\t0\t32\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t191\t0\t32\t0\t1\t1\t0\t0\t0\t9\t9\t3\t2\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t1\t0\t0\t0\t9\t9\t3\t2\t3\t7\t15\t2\t2\t73\t365\t1894\t122\t316\t0\t1\t2\t0\t0\t0\t247\t254\t82\t42\t3\t6\t13\t2\t2\t73\t118\t1640\t39\t273\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t26\t70\t205\t23.33\t34.17\t2016\t7222\t16852\t2407.0\t2809.0\t34\t111\t166\t37.0\t27.67\t61\t191\t299\t63.67\t49.83\t153\t825\t993\t275.0\t165.5\t100594\t338010\t513884\t112670.0\t85647.0\t83646\t235776\t407455\t78592.0\t67909.0\t652\t2196\t3231\t732.0\t538.5\t1908\t2897\t3334\t260\t905\t1416\t301.67\t236.0\t525\t1441\t2443\t480.33\t407.17\t1\t1\t1\t323\t1059\t1555\t353.0\t259.17\t18964\t109456\t123281\t36485.0\t20547.0\t0\t0\t0\t0.0\t0.0\t683\t2083\t4183\t694.0\t697.0\t15086\t59926\t69407\t19975.0\t11568.0\t500\t1500\t2000\t500.0\t333.0\t250\t580\t780\t193.0\t130.0\t32319\t111489\t178170\t37163.0\t29695.0\t30000\t30000\t30000\t35000\t55000\t125000\t18333.0\t20833.0\t是\t39\t31\t368\t87\t109\t501\t27\t男\t61\t0\t14\t502\t7\t0.01\t34\t1\t1\t1\t1\tpassed\t109\t0" + "\tend_column";
        // predict value
        // 0.976294

        String[] arr1 = s1.split(",");
        String[] arr2 = s2.split("\t");
        System.out.println(arr1.length);
        System.out.println(arr2.length);
        StringBuffer stringBuffer = new StringBuffer();
        for (int i = 0; i < arr1.length; ++i) {
            stringBuffer.append("\"" + arr1[i] + "\":\"" + arr2[i] + "\"").append(",");
        }
        stringBuffer.append("endendedn");
        System.out.println("{" + stringBuffer.toString().replace(",endendedn", "") + "}");
        Map<String, Object> naiveFeatures = new HashMap<>();
        for (int i = 0; i < arr1.length; ++i) {
            naiveFeatures.put(arr1[i], arr2[i]);
        }

        // start
        String[] featureNameArr = getFeatureNames();

        HashMap<String, Float> hashMap = getCleanedFeatures(naiveFeatures);
        System.out.println(hashMap.toString());

        System.out.println(Arrays.toString(getFeaturesFromMap(hashMap, featureNameArr)));

        float[] cleanedFeatures = getFeaturesFromMap(hashMap, featureNameArr);

        stringBuffer = new StringBuffer();
        for (int i = 0; i < cleanedFeatures.length; ++i) {
            stringBuffer.append("\"" + featureNameArr[i] + "\":\"" + cleanedFeatures[i] + "\"").append(",");
        }
        stringBuffer.append("endendedn");
        System.out.println("{" + stringBuffer.toString().replace(",endendedn", "") + "}");
        stringBuffer = new StringBuffer();
        for (int i = 0; i < featureNameArr.length; ++i) {
            stringBuffer.append(featureNameArr[i]).append(",");
        }
        stringBuffer.append("endendedn");
        System.out.println(stringBuffer.toString().replace(",endendedn", ""));

        int colSize = cleanedFeatures.length;
        DMatrix matrix = new DMatrix(cleanedFeatures, 1, colSize, -9999999f);
        Booster boosterModel = XGBoost.loadModel("/Users/yootoo/workspace/osc/extpmml/extpmml/src/test/resources/fin_v8c3.model");
        float[] scoreArray = boosterModel.predict(matrix)[0];
        float score = scoreArray[0];
        System.out.println(score);
    }

    public static HashMap<String, Float> getCleanedFeatures(Map<String, Object> naiveFeatures) {
        HashMap<String, Float> hashMap = new HashMap<>(600);

        for (Map.Entry<String, Object> map : naiveFeatures.entrySet()) {
            String key = map.getKey();
            Object object = map.getValue();
            String s = object.toString();

            //
            try {
                float v = Float.parseFloat(s);
                hashMap.put(key, v);
            } catch (Exception e) {
                hashMap.put(key, -1f);
            }

            // is_city_match_friend_city_center_3m
            if ("is_city_match_friend_city_center_3m".equals(key)) {
                if (s.equals("否")) {
                    hashMap.put(key, 0f);
                } else if (s.equals("是")) {
                    hashMap.put(key, 1f);
                } else {
                    hashMap.put(key, -1f);
                }
            }

            // gender
            if ("gender".equals(key)) {
                if (s.equals("男")) {
                    hashMap.put(key, 0f);
                } else if (s.equals("女")) {
                    hashMap.put(key, 1f);
                } else {
                    hashMap.put(key, -1f);
                }
            }
        }

        return hashMap;
    }

    public static float[] getFeaturesFromMap(HashMap<String, Float> hashMap, String[] featureNames) {
        float[] bars = new float[featureNames.length];
        for (int i = 0; i < featureNames.length; ++i) {
            bars[i] = hashMap.get(featureNames[i]);
        }
        return bars;
    }

    public static String[] getFeatureNames() {
        String[] arr = new String[]{
                "searched_org_cnt",
                "max_single_time_item_1m",
                "net_used_item_6m",
                "net_used_item_1m",
                "total_fee_item_1m",
                "age",
                "call_duration_detail_6m_forenoon_uniq_num_cnt",
                "max_single_time_item_6m",
                "net_used_item_3m",
                "sms_cnt_item_3m",
                "sms_cnt_item_6m",
                "contacts_class2_blacklist_cnt",
                "nuisance_call_time_6m",
                "max_single_time_item_3m",
                "call_duration_detail_3m_evening_dialed_time",
                "night_time_item_3m",
                "peer_num_cnt_item_1m",
                "total_fee_item_6m",
                "call_duration_detail_6m_morning_dialed_time",
                "call_duration_detail_3m_morning_dialed_time",
                "peer_loc_cnt_item_1m",
                "nuisance_call_dialed_time_6m",
                "call_duration_detail_6m_afternoon_uniq_num_cnt",
                "call_duration_detail_3m_evening_dial_time",
                "total_fee_item_3m",
                "call_duration_detail_3m_evening_uniq_num_cnt",
                "night_time_item_1m",
                "call_duration_detail_3m_forenoon_uniq_num_cnt",
                "recharge_amount_item_6m",
                "sms_cnt_item_1m",
                "peer_loc_cnt_item_6m",
                "inter_peer_num_6m",
                "night_time_item_6m",
                "phone_gray_score",
                "dial_time_item_1m",
                "call_duration_detail_3m_noon_dialed_time",
                "sms_fee_item_6m",
                "call_duration_detail_3m_afternoon_dialed_time",
                "call_duration_detail_6m_noon_dialed_time",
                "call_duration_detail_3m_afternoon_dial_time",
                "voice_fee_item_6m",
                "call_duration_detail_6m_dusk_dial_time",
                "call_duration_detail_3m_forenoon_dialed_time",
                "call_duration_detail_3m_noon_dial_time",
                "call_duration_detail_6m_forenoon_dialed_cnt",
                "credit_card_call_time_6m",
                "call_duration_detail_6m_afternoon_dialed_time",
                "express_call_dialed_time_6m",
                "call_duration_detail_6m_evening_dialed_time",
                "recharge_amount_item_3m",
                "call_duration_detail_6m_noon_dial_time",
                "call_duration_detail_3m_morning_dial_time",
                "nuisance_call_dialed_time_3m",
                "remote_time_item_6m",
                "bank_call_dial_time_6m",
                "call_duration_detail_6m_daybreak_dial_time",
                "call_duration_detail_3m_forenoon_dialed_cnt",
                "call_duration_detail_6m_morning_total_time",
                "call_duration_detail_6m_dusk_dialed_time",
                "sms_fee_item_1m",
                "good_friend_num_6m",
                "call_duration_detail_6m_dusk_dialed_cnt",
                "call_duration_detail_6m_midnight_dialed_time",
                "nuisance_call_time_3m",
                "call_duration_detail_6m_morning_dial_time",
                "bank_call_time_6m",
                "call_duration_detail_3m_dusk_dialed_cnt",
                "express_call_time_6m",
                "call_duration_detail_3m_evening_dialed_cnt",
                "call_duration_detail_6m_noon_dial_cnt",
                "loan_call_time_6m",
                "dial_cnt_item_1m",
                "ins_fin_call_dialed_time_6m",
                "call_duration_detail_6m_evening_total_time",
                "call_duration_detail_3m_afternoon_dialed_cnt",
                "call_duration_detail_6m_daybreak_dialed_time",
                "ins_fin_call_time_6m",
                "nuisance_call_time_1m",
                "contacts_router_cnt",
                "call_duration_detail_6m_forenoon_dial_time",
                "bank_call_dialed_time_6m",
                "nuisance_call_dialed_time_1m",
                "call_duration_detail_3m_forenoon_dial_time",
                "call_duration_detail_3m_dusk_dial_time",
                "call_duration_detail_6m_evening_dial_time",
                "call_duration_detail_6m_daybreak_total_time",
                "call_duration_detail_3m_evening_total_time",
                "call_duration_detail_3m_dusk_dialed_time",
                "agency_call_time_6m",
                "sms_fee_item_3m",
                "call_duration_detail_6m_morning_dialed_cnt",
                "call_duration_detail_6m_morning_uniq_num_cnt",
                "call_duration_detail_6m_evening_dial_cnt",
                "call_duration_detail_3m_morning_total_time",
                "call_duration_detail_3m_morning_uniq_num_cnt",
                "call_duration_detail_3m_evening_total_cnt",
                "nuisance_call_cnt_6m",
                "call_duration_detail_6m_evening_uniq_num_cnt",
                "call_duration_detail_6m_noon_total_time",
                "peer_num_cnt_item_3m",
                "recharge_amount_item_1m",
                "call_cnt_item_1m",
                "peer_num_cnt_item_6m",
                "call_duration_detail_6m_afternoon_dialed_cnt",
                "call_duration_detail_6m_midnight_dial_time",
                "peer_loc_cnt_item_3m",
                "call_duration_detail_6m_dusk_total_time",
                "call_duration_detail_6m_forenoon_dial_cnt",
                "call_duration_detail_3m_morning_total_cnt",
                "call_duration_detail_6m_afternoon_dial_time",
                "max_power_on_day_item_6m",
                "max_single_recharge_item_6m",
                "call_duration_detail_3m_daybreak_total_time",
                "call_duration_detail_6m_evening_total_cnt",
                "credit_card_call_dial_time_6m",
                "no_dial_day_item_6m",
                "call_duration_detail_6m_midnight_total_time",
                "loan_call_dialed_time_6m",
                "call_duration_detail_3m_evening_dial_cnt",
                "call_duration_detail_3m_daybreak_dial_time",
                "vas_fee_item_6m",
                "inter_peer_num_3m",
                "express_call_dial_time_6m",
                "cnt_1min_within_item_1m",
                "call_duration_detail_6m_forenoon_dialed_time",
                "call_duration_detail_3m_afternoon_uniq_num_cnt",
                "cnt_1min_5min_item_1m",
                "call_duration_detail_3m_afternoon_dial_cnt",
                "call_duration_detail_6m_evening_dialed_cnt",
                "contacts_router_ratio",
                "call_duration_detail_6m_noon_dialed_cnt",
                "call_duration_detail_3m_dusk_total_time",
                "call_duration_detail_3m_noon_uniq_num_cnt",
                "call_duration_detail_3m_daybreak_dialed_time",
                "dial_time_item_6m",
                "call_duration_detail_6m_noon_uniq_num_cnt",
                "night_cnt_item_6m",
                "nuisance_call_dial_time_6m",
                "express_call_dialed_time_3m",
                "max_single_recharge_item_3m",
                "credit_card_call_dialed_time_6m",
                "bank_call_time_1m",
                "call_duration_detail_3m_noon_dial_cnt",
                "vas_fee_item_3m",
                "call_duration_detail_3m_dusk_uniq_num_cnt",
                "call_duration_detail_3m_dusk_total_cnt",
                "call_duration_detail_3m_noon_dialed_cnt",
                "call_duration_detail_3m_noon_total_time",
                "net_fee_item_6m",
                "voice_fee_item_3m",
                "call_duration_detail_6m_morning_dial_cnt",
                "max_power_on_day_item_3m",
                "contacts_class1_cnt",
                "express_call_time_3m",
                "call_duration_detail_3m_morning_dialed_cnt",
                "no_call_day_item_6m",
                "call_duration_detail_3m_afternoon_total_time",
                "bank_call_time_3m",
                "bank_call_dialed_time_3m",
                "cnt_5min_10min_item_1m",
                "dial_time_item_3m",
                "net_used_avg_item_6m",
                "credit_card_call_dialed_time_3m",
                "call_duration_detail_6m_forenoon_total_cnt",
                "express_call_dialed_time_1m",
                "cnt_1min_within_item_3m",
                "call_duration_detail_6m_afternoon_total_cnt",
                "nuisance_call_cnt_3m",
                "loan_call_dial_time_6m",
                "call_duration_detail_6m_forenoon_total_time",
                "ins_fin_call_time_3m",
                "call_duration_detail_6m_afternoon_dial_cnt",
                "extra_fee_item_6m",
                "cnt_10min_over_item_6m",
                "call_duration_detail_3m_morning_dial_cnt",
                "local_cnt_item_6m",
                "cnt_5min_10min_item_6m",
                "carrier_call_dialed_time_6m",
                "call_duration_detail_3m_forenoon_total_cnt",
                "call_duration_detail_3m_forenoon_total_time",
                "call_duration_detail_3m_noon_total_cnt",
                "max_single_recharge_item_1m",
                "call_duration_detail_3m_forenoon_dial_cnt",
                "call_time_item_1m",
                "ins_fin_call_dialed_time_3m",
                "agency_call_dialed_time_6m",
                "remote_time_item_1m",
                "sms_cnt_avg_item_6m",
                "call_duration_detail_6m_dusk_total_cnt",
                "call_duration_detail_3m_midnight_total_time",
                "call_duration_detail_6m_dusk_uniq_num_cnt",
                "credit_card_call_time_3m",
                "cnt_1min_within_item_6m",
                "call_duration_detail_6m_noon_total_cnt",
                "cnt_5min_10min_item_3m",
                "no_dial_day_item_3m",
                "cnt_10min_over_item_3m",
                "cnt_1min_5min_item_6m",
                "express_call_cnt_6m",
                "cnt_1min_5min_item_3m",
                "call_duration_detail_6m_morning_total_cnt",
                "nuisance_call_cnt_1m",
                "local_cnt_item_1m",
                "call_duration_detail_6m_afternoon_total_time",
                "local_time_item_1m",
                "voice_fee_item_1m",
                "carrier_call_time_6m",
                "local_cnt_item_3m",
                "call_duration_detail_3m_afternoon_total_cnt",
                "vas_fee_item_1m",
                "loan_call_time_1m",
                "daytime_time_item_1m",
                "dial_cnt_item_6m",
                "call_duration_detail_3m_midnight_dialed_time",
                "loan_call_dialed_cnt_6m",
                "loan_call_time_3m",
                "nuisance_call_dialed_cnt_3m",
                "call_duration_detail_3m_daybreak_uniq_num_cnt",
                "loan_call_cnt_6m",
                "remote_time_item_3m",
                "call_duration_detail_3m_midnight_dial_time",
                "credit_card_call_time_1m",
                "night_cnt_item_3m",
                "express_call_time_1m",
                "nuisance_call_dialed_cnt_1m",
                "extra_fee_item_3m",
                "bank_call_dialed_cnt_6m",
                "net_fee_item_3m",
                "express_call_dial_time_3m",
                "call_duration_detail_6m_dusk_dial_cnt",
                "credit_card_call_dialed_time_1m",
                "call_duration_detail_3m_daybreak_dialed_cnt",
                "ins_fin_call_time_1m",
                "agency_call_time_3m",
                "bank_call_dial_time_3m",
                "call_duration_detail_3m_daybreak_total_cnt",
                "dial_cnt_item_3m",
                "bank_call_dialed_time_1m",
                "night_cnt_item_1m",
                "carrier_call_time_3m",
                "loan_call_dialed_time_3m",
                "no_dial_day_item_1m",
                "call_duration_detail_6m_daybreak_dial_cnt",
                "loan_call_dial_time_3m",
                "nuisance_call_dialed_cnt_6m",
                "express_call_dialed_cnt_6m",
                "nuisance_avg_call_time_3m",
                "good_friend_num_3m",
                "agency_call_time_1m",
                "remote_cnt_item_6m",
                "credit_card_call_dialed_cnt_6m",
                "bank_call_dial_time_1m",
                "call_duration_detail_3m_midnight_total_cnt",
                "agency_call_dialed_time_3m",
                "credit_card_call_dial_time_3m",
                "remote_cnt_item_1m",
                "power_off_day_item_6m",
                "total_fee_avg_item_3m",
                "loan_call_cnt_3m",
                "express_call_cnt_3m",
                "credit_card_call_cnt_6m",
                "remote_cnt_item_3m",
                "total_fee_avg_item_6m",
                "cnt_10min_over_item_1m",
                "credit_card_call_dial_cnt_6m",
                "car_firm_call_time_3m",
                "express_call_dialed_cnt_3m",
                "loan_call_dialed_time_1m",
                "continue_recharge_month_cnt_item_6m",
                "express_call_dial_cnt_6m",
                "ins_fin_call_dial_time_6m",
                "ins_fin_call_dialed_time_1m",
                "call_time_item_3m",
                "call_duration_detail_6m_daybreak_total_cnt",
                "max_power_on_day_item_1m",
                "local_time_item_6m",
                "call_time_item_6m",
                "call_cnt_item_3m",
                "call_duration_detail_3m_midnight_dialed_cnt",
                "call_duration_detail_6m_daybreak_uniq_num_cnt",
                "loan_call_cnt_1m",
                "call_duration_detail_3m_dusk_dial_cnt",
                "nuisance_call_dial_time_3m",
                "call_duration_detail_3m_daybreak_dial_cnt",
                "night_time_avg_item_6m",
                "call_duration_detail_6m_daybreak_dialed_cnt",
                "daytime_cnt_item_1m",
                "bank_call_dial_cnt_6m",
                "car_firm_call_dial_time_6m",
                "call_duration_detail_6m_midnight_dialed_cnt",
                "agency_call_dialed_time_1m",
                "nuisance_avg_call_time_6m",
                "call_duration_detail_6m_midnight_uniq_num_cnt",
                "call_duration_detail_6m_midnight_total_cnt",
                "ins_fin_call_dial_time_3m",
                "local_time_item_3m",
                "express_avg_call_time_6m",
                "extra_fee_item_1m",
                "ins_fin_call_cnt_6m",
                "peer_loc_cnt_avg_item_6m",
                "express_call_dial_time_1m",
                "carrier_call_dialed_time_3m",
                "express_call_cnt_1m",
                "bank_call_cnt_6m",
                "call_cnt_item_6m",
                "car_firm_call_dialed_time_6m",
                "sms_cnt_avg_item_3m",
                "credit_card_call_dial_time_1m",
                "recharge_amount_avg_item_3m",
                "agency_call_dial_time_6m",
                "credit_card_avg_call_time_6m",
                "ins_fin_call_dialed_cnt_6m",
                "bank_call_cnt_1m",
                "sms_fee_avg_item_6m",
                "agency_call_dialed_cnt_6m",
                "no_call_day_item_3m",
                "credit_card_call_cnt_3m",
                "vas_fee_avg_item_6m",
                "cnt_1min_5min_avg_item_6m",
                "nuisance_call_dial_cnt_6m",
                "cnt_10min_over_avg_item_6m",
                "agency_call_cnt_6m",
                "express_avg_call_dialed_time_6m",
                "loan_call_dial_time_1m",
                "loan_call_dialed_cnt_3m",
                "ins_fin_avg_call_time_6m",
                "net_used_avg_item_3m",
                "peer_num_cnt_avg_item_3m",
                "nuisance_avg_call_dialed_time_3m",
                "bank_call_cnt_3m",
                "carrier_call_cnt_6m",
                "bank_avg_call_dial_time_6m",
                "call_duration_detail_6m_midnight_dial_cnt",
                "loan_avg_call_time_3m",
                "car_firm_call_time_6m",
                "loan_call_dial_cnt_6m",
                "ins_fin_call_cnt_3m",
                "bank_call_dial_cnt_3m",
                "min_single_time_item_1m",
                "110_call_time_6m",
                "voice_fee_avg_item_3m",
                "sms_fee_avg_item_3m",
                "loan_avg_call_dialed_time_6m",
                "loan_avg_call_time_6m",
                "call_duration_detail_3m_midnight_uniq_num_cnt",
                "power_off_day_item_3m",
                "daytime_cnt_item_6m",
                "bank_call_dialed_cnt_3m",
                "peer_num_cnt_avg_item_6m",
                "car_firm_call_cnt_6m",
                "dial_time_avg_item_6m",
                "credit_card_call_dialed_cnt_3m",
                "agency_avg_call_time_6m",
                "cnt_5min_10min_avg_item_6m",
                "nuisance_call_dial_time_1m",
                "net_fee_avg_item_6m",
                "fraud_call_time_6m",
                "agency_call_cnt_3m",
                "express_call_dialed_cnt_1m",
                "remote_time_avg_item_6m",
                "express_avg_call_dial_time_3m",
                "nuisance_avg_call_dialed_time_6m",
                "cnt_10min_over_avg_item_3m",
                "recharge_amount_avg_item_6m",
                "daytime_time_item_3m",
                "voice_fee_avg_item_6m",
                "bank_call_dial_cnt_1m",
                "express_avg_call_time_3m",
                "nuisance_avg_call_dial_time_6m",
                "nuisance_call_dial_cnt_3m",
                "no_dial_day_avg_item_6m",
                "no_call_day_item_1m",
                "loan_call_dial_cnt_3m",
                "daytime_time_item_6m",
                "night_time_avg_item_3m",
                "gender",
                "night_cnt_avg_item_6m",
                "credit_card_avg_call_dialed_time_6m",
                "power_off_day_item_1m",
                "carrier_call_time_1m",
                "call_duration_detail_3m_midnight_dial_cnt",
                "loan_avg_call_dialed_time_3m",
                "cnt_5min_10min_avg_item_3m",
                "ins_fin_call_dialed_cnt_3m",
                "loan_avg_call_dial_time_3m",
                "special_service_call_time_6m",
                "express_call_dial_cnt_3m",
                "ins_fin_avg_call_dialed_time_6m",
                "bank_avg_call_dialed_time_6m",
                "remote_time_avg_item_3m",
                "carrier_call_dial_time_6m",
                "no_dial_day_avg_item_3m",
                "no_call_day_avg_item_6m",
                "daytime_cnt_item_3m",
                "agency_avg_call_dialed_time_6m",
                "carrier_call_dialed_time_1m",
                "net_fee_item_1m",
                "credit_card_avg_call_time_3m",
                "agency_call_dial_time_3m",
                "car_firm_call_dialed_time_3m",
                "power_off_day_avg_item_6m",
                "bank_avg_call_time_3m",
                "loan_call_dial_cnt_1m",
                "car_firm_call_dial_time_3m",
                "ins_fin_avg_call_time_3m",
                "nuisance_avg_call_dial_time_3m",
                "continue_power_off_cnt_item_6m",
                "local_time_avg_item_3m",
                "local_cnt_avg_item_6m",
                "credit_card_call_cnt_1m",
                "cnt_1min_5min_avg_item_3m",
                "peer_loc_cnt_avg_item_3m",
                "dial_time_avg_item_3m",
                "car_firm_avg_call_time_6m",
                "carrier_avg_call_time_6m",
                "cnt_1min_within_avg_item_6m",
                "remote_cnt_avg_item_6m",
                "credit_card_call_dial_cnt_3m",
                "no_call_day_avg_item_3m",
                "ins_fin_avg_call_dial_time_6m",
                "extra_fee_avg_item_6m",
                "agency_call_dial_cnt_6m",
                "110_call_dial_time_6m",
                "loan_avg_call_dial_time_6m",
                "bank_avg_call_dialed_time_3m",
                "dial_cnt_avg_item_6m",
                "continue_recharge_month_cnt_item_3m",
                "remote_cnt_avg_item_3m",
                "110_call_time_3m",
                "cnt_1min_within_avg_item_3m",
                "loan_call_dialed_cnt_1m",
                "express_avg_call_dial_time_6m",
                "min_single_time_item_6m",
                "nuisance_avg_call_dialed_cnt_3m",
                "agency_avg_call_dialed_time_3m",
                "express_avg_call_dialed_time_3m",
                "ins_fin_call_dial_time_1m",
                "ins_fin_call_dial_cnt_6m",
                "contact_loan_score",
                "ins_fin_call_cnt_1m",
                "credit_card_avg_call_dialed_time_3m",
                "local_cnt_avg_item_3m",
                "agency_avg_call_time_3m",
                "live_month_cnt_item_6m",
                "car_firm_call_dial_cnt_6m",
                "friend_num_6m",
                "express_call_dial_cnt_1m",
                "car_firm_call_time_1m",
                "car_firm_call_cnt_3m",
                "ins_fin_avg_call_dialed_time_3m",
                "daytime_time_avg_item_6m",
                "bank_avg_call_dial_time_3m",
                "net_fee_avg_item_3m",
                "carrier_call_dialed_cnt_6m",
                "credit_card_avg_call_dial_time_6m",
                "night_cnt_avg_item_3m",
                "bank_call_dialed_cnt_1m",
                "local_time_avg_item_6m",
                "fraud_call_dialed_time_6m",
                "agency_avg_call_dial_time_6m",
                "bank_avg_call_time_6m",
                "vas_fee_avg_item_3m",
                "continue_recharge_month_cnt_item_1m",
                "credit_card_avg_call_dial_time_3m",
                "credit_card_call_dialed_cnt_1m",
                "nuisance_call_dial_cnt_1m",
                "carrier_avg_call_time_3m",
                "ins_fin_call_dial_cnt_3m",
                "agency_call_dialed_cnt_3m",
                "call_cnt_avg_item_6m",
                "ins_fin_avg_call_dial_time_3m",
                "dial_cnt_avg_item_3m",
                "carrier_call_dial_time_1m",
                "car_firm_avg_call_dialed_time_6m",
                "nuisance_avg_call_cnt_3m",
                "agency_call_cnt_1m",
                "power_off_day_avg_item_3m",
                "bank_avg_call_dialed_cnt_3m",
                "live_month_cnt_item_1m",
                "car_firm_call_dial_time_1m",
                "carrier_call_dial_time_3m",
                "call_cnt_avg_item_3m",
                "carrier_avg_call_dialed_time_3m",
                "contacts_class1_blacklist_cnt",
                "friend_num_3m",
                "credit_card_call_dial_cnt_1m",
                "min_single_time_item_3m",
                "nuisance_avg_call_dialed_cnt_6m",
                "carrier_call_dial_cnt_6m",
                "call_time_avg_item_6m",
                "live_month_cnt_item_3m",
                "agency_call_dial_time_1m",
                "daytime_time_avg_item_3m",
                "carrier_call_dialed_cnt_3m",
                "carrier_avg_call_dial_time_6m",
                "unpaid_month_cnt_item_3m",
                "contact_credit_card_score",
                "extra_fee_avg_item_3m",
                "nuisance_avg_call_cnt_6m",
                "car_firm_call_cnt_1m",
                "carrier_call_cnt_3m",
                "car_firm_avg_call_dial_time_6m",
                "carrier_call_cnt_1m",
                "special_service_call_dial_time_6m",
                "car_firm_call_dialed_time_1m",
                "ins_fin_call_dial_cnt_1m",
                "call_day_item_1m",
                "continue_power_off_cnt_item_3m",
                "110_call_time_1m",
                "110_call_cnt_3m",
                "110_avg_call_time_6m",
                "express_avg_call_dialed_cnt_6m",
                "special_service_call_time_3m",
                "110_call_cnt_6m",
                "contact_110_score",
                "railway_airway_call_time_6m",
                "carrier_avg_call_dialed_time_6m",
                "express_avg_call_dialed_cnt_3m",
                "is_city_match_friend_city_center_3m",
                "ins_fin_call_dialed_cnt_1m",
                "contact_bank_score",
                "special_service_call_cnt_3m",
                "special_service_call_cnt_6m",
                "call_time_avg_item_3m",
                "special_service_call_dial_time_3m",
                "daytime_cnt_avg_item_3m",
                "mobile_silence_3m",
                "regular_circle_score",
                "special_service_avg_call_time_6m",
                "lawyer_call_dial_time_6m",
                "collection_call_time_6m",
                "loan_avg_call_cnt_3m",
                "fraud_call_dialed_time_3m",
                "credit_card_avg_call_dial_cnt_3m",
                "fraud_call_time_3m",
                "agency_call_dial_cnt_1m",
                "express_avg_call_cnt_6m",
                "agency_call_dial_cnt_3m",
                "call_day_item_6m",
                "fraud_call_cnt_6m",
                "agency_avg_call_dial_time_3m",
                "car_firm_call_dialed_cnt_6m",
                "car_firm_avg_call_time_3m",
                "car_firm_call_dial_cnt_3m",
                "bank_avg_call_cnt_3m"
        };
        return arr;
    }
}
